This invention relates to the field of electronic communications systems and, more particularly, to interleavers for permuting data for communications in these systems.
Techniques for encoding communication channels, known as coded modulation, have been found to improve the bit error rate (BER) of electronic communication systems such as modem and wireless communication systems. Turbo coded modulation has proven to be a practical, power-efficient, and bandwidth-efficient modulation method for xe2x80x9crandom-errorxe2x80x9d channels characterized by additive white Gaussian noise (AWGN) or fading. These random-error channels can be found, for example, in the Code Division Multiple Access (CDMA) environment.
An innovation of Turbo codes is the interleaver which permutes the original received or transmitted data frame. Conventional permuting of Turbo codes is accomplished by a processor performing a randomizing algorithm, the construction of which is well known.
Interleaving a sequence of data can be realized by reading linear array data from different memory locations. The xe2x80x9caddressing rulexe2x80x9d defines the permutation, which is the interleaving/de-interleaving rule. Such a memory based interleaver/de-interleaver scheme is called an indirect interleaver, since the construction of associated de-interleaver is not required.
FIG. 1 shows a conventional interleaver that uses an M-sequence register as the random address generator. A frame of data is written into sequential locations in a memory 5. An M-sequence generator 1 generates the addresses for a block of data at least as large as the frame, and in a sequence other than a linear sequence. These addresses are then used to read frame elements out of memory 5, except for addresses outside the frame size which are ignored by puncturing unit 4. Frame elements are thus read out of memory 5 in permuted order, and are buffered in a FIFO 2. A clock 3 clocks the M-sequence generator and also clocks FIFO 2. Although frame elements may emerge from memory 5 at an uneven (xe2x80x9cburstyxe2x80x9d) rate because of puncturing, the output of FIFO 2 is at an even rate.
A problem with this type of non-uniform interleaving is the difficulty in achieving sufficient xe2x80x9cnon-uniformityxe2x80x9d, since the interleaving algorithms can only be based on pseudo-irregular patterns. Further, conventional interleavers require a significant amount of memory in the encoder. Conventional interleaving matrices also require delay compensations, which limit their use for applications with real-time requirements. Turbo code will be present in 3G CDMA both in the United States and Europe. Therefore, the performance of Turbo code interleavers is an important aspect of 3G CDMA. Another important issue is how to effectively implement an interleaver in an application.
Accordingly there exists a need for systems and methods of interleaving codes that improve non-uniformity.
There also exists a need for systems and methods of interleaving codes for 3G CDMA.
It is thus an object of the present invention to provide systems and methods of interleaving codes that improve non-uniformity.
It is also an object of the present invention to provide systems and methods of interleaving codes for 3G CDMA.
In accordance with the teachings of the present invention, these and other objects may be accomplished by the present invention, which is a Turbo code interleaver for use with 3G CDMA data. An embodiment of the invention includes an apparatus that receives and temporarily stores frames of data in a memory. A counter is connected to a table. The table includes addresses which may be selected by the counter. A clock is connected to the counter and an output buffer and is configured to synchronize them.
The addresses in the table can include the addresses of elements that are outside the frame size, therefore a puncturing device can be connected to the table. The puncturing device can be configured to discard any elements that are outside the frame size. This embodiment also includes a memory. The memory can be connected to the puncturing unit and to the buffer. Data are read out of the memory from addresses which are not discarded by the puncturing device, and are output through the buffer.
Another embodiment of the present invention is a method of interleaving 3G CDMA data. This embodiment includes receiving and temporarily storing data. Using a clock to synchronize the data with a counter ensures timing throughout the system is sampled correctly. This embodiment also includes storing a plurality of addresses in at least one table electrically connected to the counter. The counter is used to select the addresses. It can be configured to select some or all of the addresses. This embodiment further includes discarding the selected addresses if they are greater than a frame size, using a puncturing device electrically connected to the table. This embodiment also includes storing the data in address locations in a memory which is electrically connected to the puncturing unit, where the address locations correspond to the selected addresses which are not discarded.
Another embodiment of the present invention is an apparatus for interleaving 3G CDMA data. This embodiment includes a memory for receiving and temporarily storing the data. It further includes a counter module for counting, an output buffer module, and a clock module connected to the buffer module and the counter module, for synchronizing the buffer module and the counter module.
This embodiment also includes a table storage module for storing addresses. A puncturing module electrically connected to the table module is included for discarding selected addresses if they are outside the frame size.